package com.sinsz.c.annotation;

import com.sinsz.c.context.BxfsRegistrar;
import com.sinsz.c.context.SpringHolderUtil;
import org.springframework.context.annotation.Import;

import java.lang.annotation.*;

/**
 * 开启bxfs框架
 * @author chenjianbo
 * @date 2017/11/13
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Inherited
@Import(value = {SpringHolderUtil.class,BxfsRegistrar.class})
public @interface EnableBxfs {
    /**
     * 扫描框架内置package，使框架生效
     * @return
     */
    String[] value() default "";

    /**
     * 是否启用日志
     * @return
     */
    boolean enableLogger() default false;

    /**
     * 配置网络日志地址
     * <p>
     *     该日志主要为网络存储日志：
     *     以http://或https://前缀开始；
     *     如果启用了日志但未配置合法的网络地址时则记录到当前运行目录
     *
     *     接口使用案例：
     *       @Controller
     *       @RequestMapping("/api/user")
     *       public class TestController {
     *
     *           @PostMapping(value = "/test", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     *               public void test(@RequestBody LoggerData map) {
     *               System.out.println(map);
     *           }
     *
     *       }
     * </p>
     * @return
     */
    String loggerPath() default "";

    /**
     * 日志服务器票据
     * <p>
     *     建议设置服务器凭据：64位的编码串
     * </p>
     * @return
     */
    String loggerToken() default "";

}